Spread spectrum transmission solutions are becoming increasingly important, for instance in global navigation satellite systems (GNSS). Presently, the Global Positioning System (GPS; U.S. Government) is the dominating standard, however alternative standards exist and are expected to gain increased importance in the future. So far, the Galileo system (the European programme for global navigation services), the Quasi-Zenith Satellite System (QZSS; Advanced Space Business Corporation in Japan) and the Global Orbiting Navigation Satellite System (GLONASS; Russian Federation Ministry of Defense) constitute the major alternative standards. Moreover, various types of mobile telecommunications systems employ spread spectrum transmission formats, such as the second generation standard IS-95 and the third generation standards IMT-2000 and CDMA2000.
In any case, due to the dissimilarities in the signal formats and the frequency bands specified by the different standards, a signal receiver adapted for one standard is generally not able to receive and process signals from signal sources belonging to a system that operates according to another standard.
Thus, multiple receiver chains are required to enable reception of signals from more than one type of system. However, including more than one receiver chain in a single device renders the device expensive, bulky and heavy. Therefore, a programmable software receiver solution is desired, which enables processing of many signal formats in one and the same processor, e.g. a CPU (central processing unit) or a DSP (digital signal processor). In such a design, it is possible to alter the signal processing principles depending on which signals are received and processed. A software-based receiver is also advantageous in that this kind of receiver may co-exist efficiently with other types of signal receivers, signal processing devices and/or software applications, for example in a laptop computer, a mobile telephone or a PDA (Personal Digital Assistant).
However, the software-receiver approach presents a number of new problems. In a hardware receiver design, the signal processor has a highly standardized and well-defined interface to the radio front-end. A multi-purpose software signal processor, on the other hand, must have a comparatively open and flexible interface towards the radio front-end and be capable of handling many different types of incoming source data having characteristics, which vary over relatively wide ranges in terms of frequency bands, bandwidth, modulating principle, signal formats and signal power levels.
Various types of buffering solutions are known in the art, which allow signal samples to be stored temporarily before being further processed. For example, the published US patent application 2005/0001764 describes a flexible architecture GPS receiver having a buffer for capturing incoming radio frequency signals at a rate consistent with the GPS bandwidth. The buffer allows repeated “playbacks” of the buffered data at rate consistent with the processing hardware. Thereby, a simultaneous search and tracking of GPS signals can be performed. It is also possible to emulate a multi-channel receiver based on a single channel receiver hardware.
The published European patent application 1 467 221 discloses a GPS receiver with signal memories and parallel correlators, wherein an intermediate frequency signal is sampled and stored in a memory. The memory, in turn, has two memory banks which alternately receive samples. Thus, during a write period in one of the memory banks, the other bank may supply its output to a processor. It is stated that this design is useful when the incoming signal contains several satellite transmissions. Nevertheless, here, the subsequent processing is performed entirely in hardware, and the received satellite signals all have the same format.
The published international patent application WO 03/065610 describes a pilot searcher for GPS and CDMA signals, wherein a sample buffer is used to enable a real-time mode as well as an off-line mode operation. In the real-time mode, the sample buffer is used as a circular buffer whereby samples are written to the buffer in real time as they are received, and are thereafter retrieved, as they are needed for processing. Hence, pilots may be searched in real time in the received signal. In the off-line mode, the sample buffer is used to store a particular time window of samples, and the stored samples may then be retrieved one or more times as required for processing. Moreover, the samples may be decimated and packed prior to storing in the sample buffer, such that each packed sample represents a data word including a particular I/Q-pair of samples.
However, all the known sample-buffer based receivers include hardware, which is designated to process signals with very specific characteristics. Therefore, none of these solutions allows the kind of parameter flexibility required by a software-implemented receiver.